package com.xdwanj.util;

import java.io.File;

public class ZipFor7Zip {


    /**
     * 生成.zip压缩文件
     *
     * @param filePath    需要压缩的文件路径
     * @param zipFileName 生成压缩文件的文件名（全路径）
     * @throws Exception
     */
    public static void generateZipFile(String filePath, String zipFileName) throws Exception {
        //zipToolPath 是本地7-Zip软件的安装路径
        String zipToolPath = "cmd /c 7z.exe";
//        zipToolPath = zipToolPath.replaceAll(" ", "\" \"");//所有空格都替换成带有双引号的空格
        String exec = zipToolPath + " a " + zipFileName + " -r *.*";
        File file = new File(filePath);
        Runtime.getRuntime().exec(exec, null, file);
        //执行成功后在ZipFileName路径下可以找到相应的压缩文件
    }


    /**
     * 解压.zip文件
     *
     * @param zipFilePath    需要解压的文件路径
     * @param targetFilePath 解压后文件保存目录
     * @param logPath        log文件的路径
     * @throws Exception
     */
    public static void unZipFile(String zipFilePath, String targetFilePath, String logPath) throws Exception {
        //zipToolPath 是本地7-Zip软件的安装路径
        String zipToolPath = "cmd /c 7z.exe";
        zipToolPath = zipToolPath.replaceAll(" ", "\" \"");//所有空格都替换成带有双引号的空格
        String exec = zipToolPath + " x " + zipFilePath + " -o " + targetFilePath + " -aoa -bse1 > " + logPath;//将解压过程写入log文件中
        System.out.println("exec = " + exec);
        Runtime.getRuntime().exec(exec);
        //执行成功后在targetFilePath路径下可以找到解压后的文件
    }


}


